home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / pilconvert.py < prev    next >
Text File  |  2009-02-21  |  2KB  |  97 lines

  1. #! /usr/bin/python
  2. #
  3. # The Python Imaging Library.
  4. # $Id: pilconvert.py 2134 2004-10-06 08:55:20Z fredrik $
  5. #
  6. # convert image files
  7. #
  8. # History:
  9. # 0.1   96-04-20 fl     Created
  10. # 0.2   96-10-04 fl     Use draft mode when converting images
  11. # 0.3   96-12-30 fl     Optimize output (PNG, JPEG)
  12. # 0.4   97-01-18 fl     Made optimize an option (PNG, JPEG)
  13. # 0.5   98-12-30 fl     Fixed -f option (from Anthony Baxter)
  14. #
  15.  
  16. import site
  17. import getopt, string, sys
  18.  
  19. from PIL import Image
  20.  
  21. def usage():
  22.     print "PIL Convert 0.5/1998-12-30 -- convert image files"
  23.     print "Usage: pilconvert [option] infile outfile"
  24.     print
  25.     print "Options:"
  26.     print
  27.     print "  -c <format>  convert to format (default is given by extension)"
  28.     print
  29.     print "  -g           convert to greyscale"
  30.     print "  -p           convert to palette image (using standard palette)"
  31.     print "  -r           convert to rgb"
  32.     print
  33.     print "  -o           optimize output (trade speed for size)"
  34.     print "  -q <value>   set compression quality (0-100, JPEG only)"
  35.     print
  36.     print "  -f           list supported file formats"
  37.     sys.exit(1)
  38.  
  39. if len(sys.argv) == 1:
  40.     usage()
  41.  
  42. try:
  43.     opt, argv = getopt.getopt(sys.argv[1:], "c:dfgopq:r")
  44. except getopt.error, v:
  45.     print v
  46.     sys.exit(1)
  47.  
  48. format = None
  49. convert = None
  50.  
  51. options = { }
  52.  
  53. for o, a in opt:
  54.  
  55.     if o == "-f":
  56.         Image.init()
  57.         id = Image.ID[:]
  58.         id.sort()
  59.         print "Supported formats (* indicates output format):"
  60.         for i in id:
  61.             if Image.SAVE.has_key(i):
  62.                 print i+"*",
  63.             else:
  64.                 print i,
  65.         sys.exit(1)
  66.  
  67.     elif o == "-c":
  68.         format = a
  69.  
  70.     if o == "-g":
  71.         convert = "L"
  72.     elif o == "-p":
  73.         convert = "P"
  74.     elif o == "-r":
  75.         convert = "RGB"
  76.  
  77.     elif o == "-o":
  78.         options["optimize"] = 1
  79.     elif o == "-q":
  80.         options["quality"] = string.atoi(a)
  81.  
  82. if len(argv) != 2:
  83.     usage()
  84.  
  85. try:
  86.     im = Image.open(argv[0])
  87.     if convert and im.mode != convert:
  88.         im.draft(convert, im.size)
  89.         im = im.convert(convert)
  90.     if format:
  91.         apply(im.save, (argv[1], format), options)
  92.     else:
  93.         apply(im.save, (argv[1],), options)
  94. except:
  95.     print "cannot convert image",
  96.     print "(%s:%s)" % (sys.exc_type, sys.exc_value)
  97.